#ifndef __LIB_AGORA_CLIENT_CHANNELRIGHT_H__
#define __LIB_AGORA_CLIENT_CHANNELRIGHT_H__

#include <vector>
#include "IChannelRight.h"

namespace AgoraClient
{

class	ChannelRight : public IChannelRight
{
public:
	ChannelRight(void);
	ChannelRight(const std::vector<bool>& right);
	~ChannelRight(void);
	void				SetChannelRight(const bool canCreate, const bool canDelete, const bool canEdit, const bool canEditUser, const bool canTalk, const bool canWrite, const bool canKick, const bool canBan);
	const bool			GetCanCreateChannelChild(void) const;
	void				SetCanCreateChannelChild(const bool value);
	const bool			GetCanDeleteChannelChild(void) const;
	void				SetCanDeleteChannelChild(const bool value);
	const bool			GetCanEditChannel(void) const;
	void				SetCanEditChannel(const bool value);
	const bool			GetCanEditUserRight(void) const;
	void				SetCanEditUserRight(const bool value);
	const bool			GetCanTalkChannel(void) const;
	void				SetCanTalkChannel(const bool value);
	const bool			GetCanWriteChannel(void) const;
	void				SetCanWriteChannel(const bool value);
	const bool			GetCanKickUser(void) const;
	void				SetCanKickUser(const bool value);
	const bool			GetCanBanUser(void) const;
	void				SetCanBanUser(const bool value);

private:
	std::vector<bool>	_right;
};

}

#endif